﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DADOS.auxiliares
{
    public class metEndereco
    {
        DB_PROAD banco = new DB_PROAD();

        private void FecharConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Close();
        }

        private void InicializarConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Open();
        }

        public List<TB_UF> ListaUF()
        {
            var listUf = new List<TB_UF>();

            try
            {
                InicializarConexao(banco);
                listUf = banco.TB_UF.OrderBy(q => q.NO_SIGLA).ToList();
            }
            catch (Exception)
            {
                
                throw;
            }finally
            {
                FecharConexao(banco);
            }

            return listUf;
        }

        public List<TB_CIDADE> ListaCidade(int intCodUF)
        {
            var listCidade = new List<TB_CIDADE>();

            try
            {
                InicializarConexao(banco);
                listCidade = banco.TB_CIDADE.Where(q => q.CO_UF == intCodUF).OrderBy(q => q.NO_CIDADE).ToList();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }

            return listCidade;
        }

        public TB_UF SelecionarUF(int intCodUf)
        {
            var objUf = new TB_UF();

            try
            {
                InicializarConexao(banco);
                objUf = banco.TB_UF.Where(q => q.CO_UF == intCodUf).FirstOrDefault();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }

            return objUf;
        }

        public TB_CIDADE SelecionarCidade(int intCodCidade)
        {
            var objCidade = new TB_CIDADE();

            try
            {
                InicializarConexao(banco);
                objCidade = banco.TB_CIDADE.Where(q => q.CO_CIDADE == intCodCidade).FirstOrDefault();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }

            return objCidade;
        }
    }
}
